﻿using GN.Pay.Client.Response.Trade;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Client.Services
{
    /// <summary>
    /// 交易查询服务
    /// </summary>
    public interface ITradeQueryService : IPayService
    {
        /// <summary>
        /// 查询支付申请
        /// </summary>
        /// <param name="applyId"></param>
        /// <returns></returns>
        PayApplyResponse QueryPayApply(string applyId);

        /// <summary>
        /// 交易通道查询
        /// </summary>
        /// <param name="channelType">通道类型</param>
        /// <returns></returns>
        List<TradeChannelResponse> TradeChannelQuery(ChannelType channelType);

        /// <summary>
        /// 交易订单查询
        /// </summary>
        /// <param name="orderNo">订单号</param>
        /// <returns></returns>
        OrderQueryResponse TradeOrderQuery(string orderNo);

        /// <summary>
        /// 同步交易支付通道
        /// </summary>
        /// <param name="orderNo">订单号</param>
        /// <returns></returns>
        SynTradePayChannelResponse SynTradePayChannel(string orderNo);
    }
}
